/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package elaborate.h2x.transform.service;

import elaborate.h2x.transform.TransformingModel;
import elaborate.h2x.transform.TransformingNode;
import javax.xml.namespace.QName;

/**
 *
 * @author lendle
 */
public interface Locator {
    public TransformingNode locateElementById(TransformingModel model,String id);
    public TransformingNode locateElementByQName(TransformingModel model, TransformingNode contextNode, QName qName);
    public TransformingNode locateElementByQName(TransformingModel model, TransformingNode contextNode, QName qName, int index);
    public TransformingNode locateAttrNode(TransformingModel model, TransformingNode contextNode, QName attribute);
    public TransformingNode locateAttrNode(TransformingModel model, TransformingNode contextNode, String attribute);
    public TransformingNode locateTextNode(TransformingModel model, TransformingNode contextNode);
    public TransformingNode locateTextNode(TransformingModel model, TransformingNode contextNode, int index);
    public TransformingNode locateNodeByXPath(TransformingModel model, TransformingNode contextNode, String xpath);
    public TransformingNode locateNode(TransformingModel model, TransformingNode contextNode, String expression);
}
